package com.itzmn.datastructure.sort;

/**
 * @Author: 张梦楠
 * @Date: 2018/11/9 14:02
 * 简书：https://www.jianshu.com/u/d611be10d1a6
 * 码云：https://gitee.com/zhangqiye
 * @Description: 选择排序
 *  思路：
 *      将待排序中的最大的数据放在有序列表的前面。
 *
 */
public class SelectSort {

    public static void main(String[] args) {
        int[] ints = {5,2,4,6,3,7,1};
        new SelectSort().selectSort(ints);
    }

    public void selectSort(int arrs[]){

        int maxIndex ;
        for (int i =0;i<arrs.length;i++){
            //每次循环，默认最大值索引为第一位
            maxIndex = 0;
            for (int j=1;j<arrs.length-i;j++){
                //如果当前位置大于最大值，将最大值的坐标改成这次的。
                if (arrs[j]>arrs[maxIndex]){
                    maxIndex = j;
                }
            }
            //将这次最大值与数组后面进行交换
            int tem = arrs[maxIndex];
            arrs[maxIndex] = arrs[arrs.length-1-i];
            arrs[arrs.length-1-i] = tem;
        }

        log(arrs);
    }

    public void log(int arrs[]){

        for (int i=0;i<arrs.length;i++){
            System.out.print(arrs[i]+" ");
        }
        System.out.println();
    }

}
